home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / tls / tls085.solintel.Z / tls085.solintel / lib / vtcl / tests / Browse.tcl < prev    next >
Encoding:
Text File  |  1995-07-20  |  2.3 KB  |  123 lines

  1. # CVS $Id: Browse.tcl,v 1.4 1995/02/07 16:59:07 zibi Exp $
  2. #
  3. # "Browse.tcl"
  4. #
  5. #     Browse the new wstcl source using the new wserver
  6. #
  7. #    John Elliott IV <iv@sco.COM>
  8. #
  9. # @(#) Browse.tcl 11.7 95/01/31 
  10.  
  11. proc quitCB { cbs } {
  12.     VtQuitServer
  13.     exit
  14. }
  15.  
  16. proc exitCB { cbs } {
  17.     VtClose
  18.     exit
  19. }
  20.  
  21. set filename ""
  22. proc listCB { cbs } {
  23.     global    filename text tlabel executeB list
  24.     
  25.     set dlog [keylget cbs dialog]
  26.     set newFilename [keylget cbs "selectedItemList"]
  27.  
  28.     if {$newFilename == ""} {
  29.         set filename $newFilename
  30.         VtSetValues $tlabel -label "Source"
  31.         VtSetValues $text -value {}
  32.         VtSetSensitive $executeB 0
  33.         return
  34.     }
  35.  
  36.     if {[catch {open $newFilename "r"} fp] != 0} {
  37.         VtShow\
  38.             [VtErrorDialog [keylget cbs "widget"].errorBox\
  39.                         -ok -title "Can't open file"\
  40.                         -message "Can't open \"$newFilename\", error was:\n$fp"]
  41.         VtListSelectItem $list -item $filename
  42.         return
  43.     }
  44.  
  45.     set filename $newFilename
  46.     VtSetValues $tlabel -label "Source for \"$filename\""
  47.  
  48.     set textList [read $fp]
  49.     close $fp
  50.  
  51.     VtSetValues $text -value $textList
  52.  
  53.     VtSetSensitive $executeB 1
  54. }
  55.  
  56. proc execCB { cbs } {
  57.     global filename
  58.  
  59.     if {[catch {exec vtcl $filename &} errorMsg] != 0} {
  60.         VtShow\
  61.             [VtErrorDialog [keylget cbs "widget"].errorBox\
  62.                 -ok -title "Can't Execute"\
  63.                 -message "Can't execute \"$filename\", error was:\n$errorMsg"]
  64.     }
  65.  
  66. }
  67.  
  68. global tlabel
  69.  
  70. set ap [VtOpen "browse"]
  71.  
  72. set form [VtFormDialog $ap.Top\
  73.             -title "WS Browser"\
  74.             -applyLabel "Execute..." \
  75.             -applyCallback execCB \
  76.             -okLabel "Close" \
  77.             -okCallback exitCB \
  78.             -cancelLabel "Quit Server"\
  79.             -cancelCallback quitCB ]
  80.  
  81. # make the execute button insensitive
  82. set executeB [VtGetValues $form -apply]
  83. VtSetSensitive $executeB 0
  84.  
  85. set llabel [VtLabel $form.llabel\
  86.             -topSide FORM\
  87.             -leftSide FORM\
  88.             -label "WS Scripts" ]
  89.  
  90. set files [lsort [glob *.tcl]]
  91.  
  92. set list [VtList $form.list\
  93.             -selection SINGLE\
  94.             -MOTIF_topOffset 2\
  95.             -bottomSide FORM\
  96.             -rows 10\
  97.             -itemList $files\
  98.             -defaultCallback execCB \
  99.             -callback listCB ]
  100.  
  101. set tlabel [VtLabel $form.tlabel\
  102.             -topSide FORM\
  103.             -leftSide $list\
  104.             -rightSide FORM \
  105.             -label "Source" ]
  106.  
  107. set text [VtText $form.text\
  108.             -leftSide $list\
  109.             -rightSide FORM\
  110.             -bottomSide FORM\
  111.             -topSide $tlabel\
  112.             -CHARM_borderWidth 1\
  113.             -rows 15\
  114.             -columns 40\
  115.             -horizontalScrollBar TRUE\
  116.             -verticalScrollBar TRUE\
  117.             -readOnly ]
  118.  
  119.  
  120. VtShow $form
  121.  
  122. VtMainLoop
  123.